참고사항
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 데이터 불러오기
df = pd.read_excel('total_input.xlsx')
df.head()
df.info()
[참고] 요인분해분석결과 단계별 컬럼정리
분석용 데이터 사전처리
energy_df = df[['실적년도','감축업종코드','감축업종코드명','실질산출액(백만원)','실질부가가치액(백만원)','합계(천toe)',
'석탄류(천toe)','석유류(천toe)','가스류(천toe)','기타연료(천toe)','열(천toe)','전력(천toe)']]
energy_df.columns =['year','code','name','out_value','add_value','energy','coal','petro','gas','others','heat','elec']
energy_df.head(3)
산업부문 전체 에너지 요인분해분석(실질산출액 기준)
def LMDI_out_energy(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['energy_b'] = base['energy']
base['Q_b'] = sum(base['out_value'])/1000
base['Si_b'] = (base['out_value']/1000)/ base['Q_b']
base['li_b'] = base['energy']/(base['out_value']/1000)
#base['QSili_b'] = base['Q_b']*base['Si_b']*base['li_b']
base = base.drop(['coal','petro','gas','others','heat','elec','energy'], axis=1)
target['energy_t'] = target['energy']
target['Q_t'] = sum(target['out_value'])/1000
target['Si_t'] = (target['out_value']/1000)/target['Q_t']
target['li_t'] = target['energy']/(target['out_value']/1000)
#target['QSili_t'] = target['Q_t']*target['Si_t']*target['li_t']
target = target.drop(['name','out_value','add_value','coal','petro','gas','others','heat','elec','energy'], axis=1)
result_df_temp = pd.merge(base, target, on='code')
result_df = pd.DataFrame()
result_df['Eit-Ei0'] = result_df_temp['energy_t']-result_df_temp['energy_b']
result_df['lnEit-lnEi0'] = np.log(result_df_temp['energy_t'])-np.log(result_df_temp['energy_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Q_t']/result_df_temp['Q_b'])
result_df['ln(Sit/Si0)'] = np.log(result_df_temp['Si_t']/result_df_temp['Si_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df['Eact'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df['Estr'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Sit/Si0)'] # 기준효과
result_df['Eins'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['Etot'] = result_df['Eact'] + result_df['Estr'] + result_df['Eins'] # 소비량증감
print('< 산업전체 에너지 요인분해분석(실질산출액 기준),',base_y,'vs',target_y,'>\n')
print('생산효과:', np.round(sum(result_df['Eact']), 2))
print('구조효과:', np.round(sum(result_df['Estr']), 2))
print('원단위효과:', np.round(sum(result_df['Eins']), 2))
print('소비량증감:', np.round(sum(result_df['Etot']), 2))
LMDI_out_energy(energy_df, 2015, 2018)
산업부문 전체 에너지 요인분해분석(실질부가가치액 기준)
def LMDI_add_energy(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['energy_b'] = base['energy']
base['Q_b'] = sum(base['add_value'])/1000
base['Si_b'] = (base['add_value']/1000)/ base['Q_b']
base['li_b'] = base['energy']/(base['add_value']/1000)
#base['QSili_b'] = base['Q_b']*base['Si_b']*base['li_b']
base = base.drop(['coal','petro','gas','others','heat','elec','energy'], axis=1)
target['energy_t'] = target['energy']
target['Q_t'] = sum(target['add_value'])/1000
target['Si_t'] = (target['add_value']/1000)/target['Q_t']
target['li_t'] = target['energy']/(target['add_value']/1000)
#target['QSili_t'] = target['Q_t']*target['Si_t']*target['li_t']
target = target.drop(['name','add_value','add_value','coal','petro','gas','others','heat','elec','energy'], axis=1)
result_df_temp = pd.merge(base, target, on='code')
result_df = pd.DataFrame()
result_df['Eit-Ei0'] = result_df_temp['energy_t']-result_df_temp['energy_b']
result_df['lnEit-lnEi0'] = np.log(result_df_temp['energy_t'])-np.log(result_df_temp['energy_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Q_t']/result_df_temp['Q_b'])
result_df['ln(Sit/Si0)'] = np.log(result_df_temp['Si_t']/result_df_temp['Si_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df['Eact'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df['Estr'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Sit/Si0)'] # 구조효과
result_df['Eins'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['Etot'] = result_df['Eact'] + result_df['Estr'] + result_df['Eins'] # 소비량증감
print('< 산업전체 에너지 요인분해분석(실질부가가치액 기준),',base_y,'vs',target_y,'>\n')
print('기준년도:', base_y, 'vs', '비교년도:', target_y)
print('생산효과:', np.round(sum(result_df['Eact']), 2))
print('구조효과:', np.round(sum(result_df['Estr']), 2))
print('원단위효과:', np.round(sum(result_df['Eins']), 2))
print('소비량증감:', np.round(sum(result_df['Etot']), 2))
LMDI_add_energy(energy_df, 2015, 2018)
산업부문 업종별 에너지 요인분해분석(실질산출액 기준)
def LMDI_sector_out_energy(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['energy_b'] = base['energy']
base['Q_b'] = base['out_value']/1000
base['li_b'] = base['energy']/(base['out_value']/1000)
base = base.drop(['coal','petro','gas','others','heat','elec','energy'], axis=1)
target['energy_t'] = target['energy']
target['Q_t'] = target['out_value']/1000
target['li_t'] = target['energy']/(target['out_value']/1000)
target = target.drop(['name','out_value','add_value','coal','petro','gas','others','heat','elec','energy'], axis=1)
result_df_temp = pd.merge(base, target, on='code')
result_df = pd.DataFrame()
result_df['Eit-Ei0'] = result_df_temp['energy_t']-result_df_temp['energy_b']
result_df['lnEit-lnEi0'] = np.log(result_df_temp['energy_t'])-np.log(result_df_temp['energy_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Q_t']/result_df_temp['Q_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df_last = pd.DataFrame()
result_df_last['업종명'] = result_df_temp['name']
result_df_last['생산효과'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df_last['원단위효과'] = (result_df['Eit-Ei0']/result_df['lnEit-lnEi0'])*result_df['ln(Iit/Ii0)'] # 원단위효과
result_df_last['소비량증감'] = result_df_last['생산효과'] + result_df_last['원단위효과'] # 소비량증감
print('< 업종별 에너지 요인분해분석(실질산출액 기준),',base_y,'vs',target_y,'>\n')
return result_df_last
LMDI_sector_out_energy(energy_df, 2015, 2018)
산업부문 업종별 에너지 요인분해분석(실질부가가치액 기준)
def LMDI_sector_add_energy(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['energy_b'] = base['energy']
base['Q_b'] = base['add_value']/1000
base['li_b'] = base['energy']/(base['add_value']/1000)
base = base.drop(['coal','petro','gas','others','heat','elec','energy'], axis=1)
target['energy_t'] = target['energy']
target['Q_t'] = target['add_value']/1000
target['li_t'] = target['energy']/(target['add_value']/1000)
target = target.drop(['name','out_value','add_value','coal','petro','gas','others','heat','elec','energy'], axis=1)
index_df_temp = pd.merge(base, target, on='code')
index_df = pd.DataFrame()
index_df['Eit-Ei0'] = index_df_temp['energy_t']-index_df_temp['energy_b']
index_df['lnEit-lnEi0'] = np.log(index_df_temp['energy_t'])-np.log(index_df_temp['energy_b'])
index_df['ln(Qt/Q0)'] = np.log(index_df_temp['Q_t']/index_df_temp['Q_b'])
index_df['ln(Iit/Ii0)'] = np.log(index_df_temp['li_t']/index_df_temp['li_b'])
result_df = pd.DataFrame()
result_df['업종명'] = index_df_temp['name']
result_df['생산효과'] = (index_df['Eit-Ei0']/index_df['lnEit-lnEi0'])*index_df['ln(Qt/Q0)'] # 생산효과
result_df['원단위효과'] = (index_df['Eit-Ei0']/index_df['lnEit-lnEi0'])*index_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['소비량증감'] = result_df['생산효과'] + result_df['원단위효과'] # 소비량증감
print('< 업종별 에너지 요인분해분석(실질부가가치액 기준),',base_y,'vs',target_y,'>\n')
return result_df
LMDI_sector_add_energy(energy_df, 2015, 2018)
분석용 데이터 작업
energy_df = df[['실적년도','감축업종코드','감축업종코드명','실질산출액(백만원)','실질부가가치액(백만원)','합계(천toe)',
'석탄류(천toe)','석유류(천toe)','가스류(천toe)','기타연료(천toe)','열(천toe)','전력(천toe)']]
energy_df.columns =['year','code','name','out_value','add_value','t_energy','coal','petro','gas','others','heat','elec']
energy_df_2 = energy_df.drop('t_energy', axis=1)
energy_df_2 = pd.melt(energy_df_2, id_vars=['year','code','name','out_value','add_value'])
energy_df_2 = energy_df_2.sort_values(['year','code'])
energy_df_2.columns =['year','code','name','out_value','add_value','energy_name','energy']
energy_df_2.head()
CO2_df_sub = df[['실적년도','감축업종코드','합계(천tCO2)','석탄류(천tCO2)','석유류(천tCO2)','가스류(천tCO2)','기타연료(천tCO2)','열(천tCO2)','전력(천tCO2)']]
CO2_df_sub.columns =['year','code','t_CO2','coal','petro','gas','others','heat','elec']
CO2_df_sub_2 = CO2_df_sub.drop('t_CO2', axis=1)
CO2_df_sub_2 = pd.melt(CO2_df_sub_2, id_vars=['year','code'])
CO2_df_sub_2 = CO2_df_sub_2.sort_values(['year','code'])
CO2_df_sub_2.columns =['year','code','energy_name','CO2']
CO2_df_sub_2.head(10)
CO2_df = pd.merge(energy_df_2, CO2_df_sub_2, on=['year','code','energy_name']) # 업종별 에너지사용량, 온실가스배출량
CO2_df.head()
energy_df_s = energy_df[['year','code','t_energy']] # 업종별 총 에너지사용량 출력
CO2_df_sub_s = CO2_df_sub[['year','code','t_CO2']] # 업종별 총 CO2배출량 출력
CO2_df = pd.merge(CO2_df, energy_df_s, on=['year','code'])
CO2_df = pd.merge(CO2_df, CO2_df_sub_s, on=['year','code'])
CO2_df.head()
산업부문 전체 이산화탄소 요인분해분석(실질산출액 기준)
def LMDI_out_CO2(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['CO2_b'] = base['CO2']
base['Qi_b'] = (sum(base['out_value'])/6)/1000
base['Si_b'] = (base['out_value']/1000)/ base['Qi_b']
base['li_b'] = base['t_energy']/(base['out_value']/1000)
base['Mij_b'] = base['CO2']/base['t_energy']
base['Cij_b'] = base['Qi_b']*base['Si_b']*base['li_b']*base['Mij_b']
target['CO2_t'] =target['CO2']
target['Qi_t'] = (sum(target['out_value'])/6)/1000
target['Si_t'] = (target['out_value']/1000)/ target['Qi_t']
target['li_t'] = target['t_energy']/(target['out_value']/1000)
target['Mij_t'] = target['CO2']/target['t_energy']
target['Cij_t'] = target['Qi_t']*target['Si_t']*target['li_t']*target['Mij_t']
result_df_temp = pd.merge(base, target, on=['code', 'energy_name'])
result_df = pd.DataFrame()
result_df['Cijt-Cij0'] = result_df_temp['CO2_t']-result_df_temp['CO2_b']
result_df['lnCijt-lnCij0'] = np.log(result_df_temp['CO2_t'])-np.log(result_df_temp['CO2_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Qi_t']/result_df_temp['Qi_b'])
result_df['ln(Sit/Si0)'] = np.log(result_df_temp['Si_t']/result_df_temp['Si_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df['ln(Mijt-Mij0)'] = np.log(result_df_temp['Mij_t']/result_df_temp['Mij_b'])
result_df['Cact'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df['Cstr'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Sit/Si0)'] # 구조효과
result_df['Cint'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['Cmix'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Mijt-Mij0)'] # 에너지믹스효과
result_df['Ctot'] = result_df['Cact'] + result_df['Cstr'] + result_df['Cint'] + result_df['Cmix'] # 배출량증감
result_df = result_df.fillna(0)
#return result_df
print('< 산업전체 CO2 요인분해분석(실질산출액 기준),',base_y,'vs',target_y,'>\n')
print('생산효과:', np.round(sum(result_df['Cact']), 2))
print('구조효과:', np.round(sum(result_df['Cstr']), 2))
print('원단위효과:', np.round(sum(result_df['Cint']), 2))
print('에너지믹스효과:', np.round(sum(result_df['Cmix']), 2))
print('배출량증감:', np.round(sum(result_df['Ctot']), 2))
LMDI_out_CO2(CO2_df, 2015, 2018)
산업부문 전체 이산화탄소 요인분해분석(실질부가가치액 기준)
def LMDI_add_CO2(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['CO2_b'] = base['CO2']
base['Qi_b'] = (sum(base['add_value'])/6)/1000
base['Si_b'] = (base['add_value']/1000)/ base['Qi_b']
base['li_b'] = base['t_energy']/(base['add_value']/1000)
base['Mij_b'] = base['CO2']/base['t_energy']
base['Cij_b'] = base['Qi_b']*base['Si_b']*base['li_b']*base['Mij_b']
target['CO2_t'] =target['CO2']
target['Qi_t'] = (sum(target['add_value'])/6)/1000
target['Si_t'] = (target['add_value']/1000)/ target['Qi_t']
target['li_t'] = target['t_energy']/(target['add_value']/1000)
target['Mij_t'] = target['CO2']/target['t_energy']
target['Cij_t'] = target['Qi_t']*target['Si_t']*target['li_t']*target['Mij_t']
result_df_temp = pd.merge(base, target, on=['code', 'energy_name'])
result_df = pd.DataFrame()
result_df['Cijt-Cij0'] = result_df_temp['CO2_t']-result_df_temp['CO2_b']
result_df['lnCijt-lnCij0'] = np.log(result_df_temp['CO2_t'])-np.log(result_df_temp['CO2_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Qi_t']/result_df_temp['Qi_b'])
result_df['ln(Sit/Si0)'] = np.log(result_df_temp['Si_t']/result_df_temp['Si_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df['ln(Mijt-Mij0)'] = np.log(result_df_temp['Mij_t']/result_df_temp['Mij_b'])
result_df['Cact'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df['Cstr'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Sit/Si0)'] # 구조효과
result_df['Cint'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['Cmix'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Mijt-Mij0)'] # 에너지믹스효과
result_df['Ctot'] = result_df['Cact'] + result_df['Cstr'] + result_df['Cint'] + result_df['Cmix'] # 배출량증감
result_df = result_df.fillna(0)
#return result_df
print('< 산업전체 CO2 요인분해분석(실질부가가치액 기준),',base_y,'vs',target_y,'>\n')
print('생산효과:', np.round(sum(result_df['Cact']), 2))
print('구조효과:', np.round(sum(result_df['Cstr']), 2))
print('원단위효과:', np.round(sum(result_df['Cint']), 2))
print('에너지믹스효과:', np.round(sum(result_df['Cmix']), 2))
print('배출량증감:', np.round(sum(result_df['Ctot']), 2))
LMDI_add_CO2(CO2_df, 2015, 2018)
산업부문 업종별 이산화탄소 요인분해분석(실질산출액 기준)
CO2_df.head()
def LMDI_sector_out_CO2(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['CO2_b'] = base['CO2']
base['Qi_b'] = base['out_value']/1000
base['li_b'] = base['t_energy']/(base['out_value']/1000)
base['Mij_b'] = base['CO2']/base['t_energy']
base['Cij_b'] = base['Qi_b']*base['li_b']*base['Mij_b']
target['CO2_t'] =target['CO2']
target['Qi_t'] = target['out_value']/1000
target['li_t'] = target['t_energy']/(target['out_value']/1000)
target['Mij_t'] = target['CO2']/target['t_energy']
target['Cij_t'] = target['Qi_t']*target['li_t']*target['Mij_t']
result_df_temp = pd.merge(base, target, on=['code', 'name','energy_name'])
result_df = pd.DataFrame()
result_df['code'] = result_df_temp['code']
result_df['Cijt-Cij0'] = result_df_temp['CO2_t']-result_df_temp['CO2_b']
result_df['lnCijt-lnCij0'] = np.log(result_df_temp['CO2_t'])-np.log(result_df_temp['CO2_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Qi_t']/result_df_temp['Qi_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df['ln(Mijt-Mij0)'] = np.log(result_df_temp['Mij_t']/result_df_temp['Mij_b'])
result_df['Cact'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df['Cint'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['Cmix'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Mijt-Mij0)'] # 에너지믹스효과
result_df['Ctot'] = result_df['Cact'] + result_df['Cint'] + result_df['Cmix'] # 배출량증감
result_df = result_df.fillna(0)
index_df = result_df_temp[['code', 'name']].drop_duplicates() # 업종명 열 생성
result_df_sub = result_df[['code','Cact','Cint','Cmix','Ctot']] # 분석효과 열만 추출
result_df_sub = result_df_sub.groupby(['code']).sum()
result_df_last = pd.merge(index_df, result_df_sub, on='code')
result_df_last = result_df_last.drop(['code'], axis=1)
result_df_last.columns = ['업종명','생산효과','원단위효과','에너지믹스효과','배출량증감']
return result_df_last
LMDI_sector_out_CO2(CO2_df, 2015, 2018)
산업부문 업종별 이산화탄소 요인분해분석(실질부가가치액 기준)
def LMDI_sector_add_CO2(data, base_y, target_y):
base = data[data['year']== base_y].copy() # 기준년도 데이터
target = data[data['year']== target_y].copy() # 비교(실제)년도 데이터
base['CO2_b'] = base['CO2']
base['Qi_b'] = base['add_value']/1000
base['li_b'] = base['t_energy']/(base['add_value']/1000)
base['Mij_b'] = base['CO2']/base['t_energy']
base['Cij_b'] = base['Qi_b']*base['li_b']*base['Mij_b']
target['CO2_t'] =target['CO2']
target['Qi_t'] = target['add_value']/1000
target['li_t'] = target['t_energy']/(target['add_value']/1000)
target['Mij_t'] = target['CO2']/target['t_energy']
target['Cij_t'] = target['Qi_t']*target['li_t']*target['Mij_t']
result_df_temp = pd.merge(base, target, on=['code', 'name','energy_name'])
result_df = pd.DataFrame()
result_df['code'] = result_df_temp['code']
result_df['Cijt-Cij0'] = result_df_temp['CO2_t']-result_df_temp['CO2_b']
result_df['lnCijt-lnCij0'] = np.log(result_df_temp['CO2_t'])-np.log(result_df_temp['CO2_b'])
result_df['ln(Qt/Q0)'] = np.log(result_df_temp['Qi_t']/result_df_temp['Qi_b'])
result_df['ln(Iit/Ii0)'] = np.log(result_df_temp['li_t']/result_df_temp['li_b'])
result_df['ln(Mijt-Mij0)'] = np.log(result_df_temp['Mij_t']/result_df_temp['Mij_b'])
result_df['Cact'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Qt/Q0)'] # 생산효과
result_df['Cint'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Iit/Ii0)'] # 원단위개선효과
result_df['Cmix'] = (result_df['Cijt-Cij0']/result_df['lnCijt-lnCij0'])*result_df['ln(Mijt-Mij0)'] # 에너지믹스효과
result_df['Ctot'] = result_df['Cact'] + result_df['Cint'] + result_df['Cmix'] # 배출량증감
result_df = result_df.fillna(0)
index_df = result_df_temp[['code', 'name']].drop_duplicates() # 업종명 열 생성
result_df_sub = result_df[['code','Cact','Cint','Cmix','Ctot']] # 분석효과 열만 추출
result_df_sub = result_df_sub.groupby(['code']).sum()
result_df_last = pd.merge(index_df, result_df_sub, on='code')
result_df_last = result_df_last.drop(['code'], axis=1)
result_df_last.columns = ['업종명','생산효과','원단위효과','에너지믹스효과','배출량증감']
return result_df_last
LMDI_sector_add_CO2(CO2_df, 2015, 2018)